package ar.uba.fi.algo3.modelo.astillero;

import java.util.ArrayList;

import ar.uba.fi.algo3.auxiliares.*;
import ar.uba.fi.algo3.modelo.CampoBatalla;
import ar.uba.fi.algo3.modelo.nave.ComponenteNave;
import ar.uba.fi.algo3.modelo.nave.Nave;

public abstract class Astillero {
		
	public ComponenteNave parteNave;
	public ArrayList<ComponenteNave> partes;
	public Posicion posicion;
	
    public Astillero(){}	
	 
	public ArrayList<ComponenteNave> crearPartes(Posicion unaPosicion,CampoBatalla campoBatalla, Direccion direccion, int cantidadDeComponentes, int dureza) {
		
		this.partes= new ArrayList<ComponenteNave>();
		this.posicion= unaPosicion.posAnterior();
		
		for (int i=0; i< cantidadDeComponentes; i++ ){

			this.correrPosicion(posicion);
			this.parteNave= new ComponenteNave(unaPosicion, campoBatalla, dureza);
			parteNave.setPosicion(posicion);
			partes.add(parteNave);			
		}		
		
		return partes;		
	}

	private void correrPosicion(Posicion posicionAnterior) {
		
		this.posicion= posicionAnterior.posSiguiente();		
	}
	
	public abstract Nave crearNaveEn(Posicion unaPosicion, CampoBatalla campoBatalla, Direccion direccion);

}